int db_init();

void move_to_other_tags(GtkObject *tag_button, gpointer tag_name);

void move_to_path_tags(GtkObject *tag_button, gpointer tag_name);

void edit_tags_dialog(const char *path);

//отображает интерфейс для доюавления пути к файлу в базу
void add_file(GtkObject *o, gpointer *p);

void add_tag(GtkObject *o, gpointer *p);

void delete_tag_handler(GtkObject *o, gpointer *p);

//завершает программу при закрытии главного окна
void delete_main_window_event(GtkObject *object);

//инициализирует глобальные переменные используемые в интерфейсе
void main_window_init();

void reinit_img_table();

//обработчик клика по тегу в вертикальном списке тегов
//перемещает тег из вертикального списка в горизонтальный
void move_to_horizontal_tagline(GtkObject *tag_button, gpointer tag_name);

//инициализирует список тегов
void vertical_tagline_init();

//обработчик клика по тегу в горизонтальном списке тегов
//перемещает тег из горизонтального списка в вертикальный
void move_to_vertical_tagline(GtkObject *tag_button, gpointer tag_name);

//инициализирует список тегов
void horizontal_tagline_init();

//инициализирует строку с кнопками выбора действий
void actions_menu_init();

void rebind_vertical_tagline(GtkWidget *new_vertical_tagline);

void rebind_horizontal_tagline(GtkWidget *new_horizontal_tagline);

void rebind_img_table(GtkWidget *new_img_table);

void move_tag(TagLine *from, TagLine *to,
        GtkObject *tag_button,
        gpointer *tag_name);

void attach_imgtable_controls(GtkContainer *window,
        GtkWidget *actions_menu,
        GtkWidget *img_table,
        GtkWidget *vertical_tagline,
        GtkWidget *horizontal_tagline);

void show_img_without_tags(GtkObject *o, gpointer *p);

void reinit_img_table_without_tags(void);
void edit_callback(GtkWidget *image, GdkEvent *, gpointer path);
